package com.drug.wms.domain;

import com.drug.common.annotation.Excel;
import com.drug.common.core.domain.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import org.springframework.stereotype.Component;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 库存对象 bus_sku_stock
 * 
 * @author ruoyi
 * @date 2021-12-05
 */
public class BusSkuStockDetailsResponseVO
{
    private static final long serialVersionUID = 1L;

    /** 主键id */
    @ApiModelProperty("id")
    private String id;

    /** 商品编码 */
    @Excel(name = "商品编码")
    @ApiModelProperty("商品编码")
    private String skuId;

    /** 商品名称 */
    @Excel(name = "商品名称")
    @ApiModelProperty("商品名称")
    private String goodsName;

    /** 单位 */
    @Excel(name = "单位")
    @ApiModelProperty("单位")
    private String unit;

    /** 基本单位 */
    @Excel(name = "基本单位")
    @ApiModelProperty("基本单位")
    private String baseUnit;

    /** 批号 */
    @Excel(name = "批号")
    @ApiModelProperty("批号")
    private String batchNo;

    /** 货品状态 */
    @Excel(name = "货品状态")
    @ApiModelProperty("货品状态 1:合格 0:不合格")
    private Long goodsStatus;

    /** 库存数量 */
    @Excel(name = "库存数量")
    @ApiModelProperty("库存数量")
    private BigDecimal amount;

    /** 可销库存 */
    @Excel(name = "可销库存")
    @ApiModelProperty("库存数量")
    private BigDecimal canSaleAmount;

    /** 货位编码 */
    @Excel(name = "货位编码")
    @ApiModelProperty("货位编码")
    private String goodsPosition;

    /** 成本均价 */
    @Excel(name = "成本均价")
    @ApiModelProperty("成本均价")
    private BigDecimal averageCostPrice;

    /** 库存金额 */
    @Excel(name = "库存金额")
    @ApiModelProperty("库存金额")
    private BigDecimal inventoryAmount;

    /** 质量状态 */
    @Excel(name = "质量状态")
    @ApiModelProperty("质量状态")
    private Long qualityStatus;

    /** 生产厂商编号 */
    @Excel(name = "生产厂商编号")
    @ApiModelProperty("生产厂商编号")
    private String manufacturerNo;

    /** 仓库编号 */
    @Excel(name = "仓库编号")
    @ApiModelProperty("仓库编号")
    private String warehouseNo;

    /** 供应商编号 */
    @Excel(name = "供应商编号")
    @ApiModelProperty("供应商编号")
    private String supplierNo;

    /** 生产厂商编号 */
    @Excel(name = "生产厂商名称")
    @ApiModelProperty("生产厂商名称")
    private String manufacturerName;

    /** 仓库编号 */
    @Excel(name = "仓库编号")
    @ApiModelProperty("仓库编号")
    private String warehouseName;

    /** 供应商编号 */
    @Excel(name = "供应商名称")
    @ApiModelProperty("供应商名称")
    private String supplierName;

    /** 转换率 */
    @Excel(name = "装箱规格")
    @ApiModelProperty("装箱规格")
    private Integer cartonSize;

    /** 过期时间 */
    @Excel(name = "过期时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date expirationDate;

    /** 生产日期 */
    @Excel(name = "生产日期")
    @ApiModelProperty("生产日期")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date produceDate;

    /** 近效期天数 */
    @Excel(name = "近效期天数")
    @ApiModelProperty("近效期天数")
    private int validityPeriod;

    /** 仓库类型编码 */
    @Excel(name = "仓库类型编码")
    @ApiModelProperty("仓库类型编码")
    private String warehouseTypeCode;

    public BusSkuStockDetailsResponseVO() {
    }

    public void setId(String id)
    {
        this.id = id;
    }

    public String getId() 
    {
        return id;
    }
    public void setSkuId(String skuId)
    {
        this.skuId = skuId;
    }

    public String getSkuId()
    {
        return skuId;
    }
    public void setGoodsName(String goodsName) 
    {
        this.goodsName = goodsName;
    }

    public String getGoodsName() 
    {
        return goodsName;
    }
    public void setUnit(String unit) 
    {
        this.unit = unit;
    }

    public String getUnit() 
    {
        return unit;
    }
    public void setBaseUnit(String baseUnit) 
    {
        this.baseUnit = baseUnit;
    }

    public String getBaseUnit() 
    {
        return baseUnit;
    }
    public void setBatchNo(String batchNo) 
    {
        this.batchNo = batchNo;
    }

    public String getBatchNo() 
    {
        return batchNo;
    }
    public void setGoodsStatus(Long goodsStatus)
    {
        this.goodsStatus = goodsStatus;
    }

    public Long getGoodsStatus() 
    {
        return goodsStatus;
    }
    public void setAmount(BigDecimal amount)
    {
        this.amount = amount;
    }

    public BigDecimal getAmount()
    {
        return amount;
    }
    public void setCanSaleAmount(BigDecimal canSaleAmount)
    {
        this.canSaleAmount = canSaleAmount;
    }

    public BigDecimal getCanSaleAmount()
    {
        return canSaleAmount;
    }
    public void setGoodsPosition(String goodsPosition) 
    {
        this.goodsPosition = goodsPosition;
    }

    public String getGoodsPosition() 
    {
        return goodsPosition;
    }
    public void setAverageCostPrice(BigDecimal averageCostPrice) 
    {
        this.averageCostPrice = averageCostPrice;
    }

    public BigDecimal getAverageCostPrice() 
    {
        return averageCostPrice;
    }
    public void setInventoryAmount(BigDecimal inventoryAmount) 
    {
        this.inventoryAmount = inventoryAmount;
    }

    public BigDecimal getInventoryAmount() 
    {
        return inventoryAmount;
    }
    public void setQualityStatus(Long qualityStatus) 
    {
        this.qualityStatus = qualityStatus;
    }

    public Long getQualityStatus() 
    {
        return qualityStatus;
    }
    public void setManufacturerNo(String manufacturerNo) 
    {
        this.manufacturerNo = manufacturerNo;
    }

    public String getManufacturerNo() 
    {
        return manufacturerNo;
    }
    public void setWarehouseNo(String warehouseNo) 
    {
        this.warehouseNo = warehouseNo;
    }

    public String getWarehouseNo() 
    {
        return warehouseNo;
    }
    public void setSupplierNo(String supplierNo) 
    {
        this.supplierNo = supplierNo;
    }

    public String getSupplierNo() 
    {
        return supplierNo;
    }


    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("salesId", getSkuId())
            .append("goodsName", getGoodsName())
            .append("unit", getUnit())
            .append("baseUnit", getBaseUnit())
            .append("batchNo", getBatchNo())
            .append("goodsStatus", getGoodsStatus())
            .append("amount", getAmount())
            .append("canSaleAmount", getCanSaleAmount())
            .append("goodsPosition", getGoodsPosition())
            .append("averageCostPrice", getAverageCostPrice())
            .append("inventoryAmount", getInventoryAmount())
            .append("qualityStatus", getQualityStatus())
            .append("manufacturerNo", getManufacturerNo())
            .append("warehouseNo", getWarehouseNo())
            .append("supplierNo", getSupplierNo())
            .toString();
    }

    public int getValidityPeriod() {
        return validityPeriod;
    }

    public void setValidityPeriod(int validityPeriod) {
        this.validityPeriod = validityPeriod;
    }

    public Date getProduceDate() {
        return produceDate;
    }

    public void setProduceDate(Date produceDate) {
        this.produceDate = produceDate;
    }

    public Date getExpirationDate() {
        return expirationDate;
    }

    public void setExpirationDate(Date expirationDate) {
        this.expirationDate = expirationDate;
    }

    public Integer getCartonSize() {
        return cartonSize;
    }

    public void setConvertRate(Integer cartonSize) {
        this.cartonSize = cartonSize;
    }

    public String getWarehouseTypeCode() {
        return warehouseTypeCode;
    }

    public void setWarehouseTypeCode(String warehouseTypeCode) {
        this.warehouseTypeCode = warehouseTypeCode;
    }

    public String getManufacturerName() {
        return manufacturerName;
    }

    public void setManufacturerName(String manufacturerName) {
        this.manufacturerName = manufacturerName;
    }

    public String getWarehouseName() {
        return warehouseName;
    }

    public void setWarehouseName(String warehouseName) {
        this.warehouseName = warehouseName;
    }

    public String getSupplierName() {
        return supplierName;
    }

    public void setSupplierName(String supplierName) {
        this.supplierName = supplierName;
    }
}
